Measuring Cohesion and Coupling of Object-Oriented Systems - Derivation and Mutual Study of Cohesion and Coupling
نویسندگان
چکیده
Cohesion and coupling are considered amongst the most important properties to evaluate the quality of a design. In the context of OO software development, cohesion means relatedness of the public functionality of a class whereas coupling stands for the degree of dependence of a class on other classes in OO system. In this thesis, a new metric has been proposed that measures the class cohesion on the basis of relative relatedness of the public methods to the overall public functionality of a class. The proposed metric for class cohesion uses a new concept of subset tree to determine relative relatedness of the public methods to the overall public functionality of a class. A set of metrics has been proposed for measuring class coupling based on three types of UML relationships, namely association, inheritance and dependency. The reasonable metrics to measure cohesion and coupling are supposed to share the same set of input data. Sharing of input data by the metrics encourages the idea for the existence of mutual relationships between them. Based on potential relationships research questions have been formed. An attempt is made to find answers of these questions with the help of an experiment on OO system FileZilla. Mutual relationships between class cohesion and class coupling have been analyzed statistically while considering OO metrics for size and reuse. Relationships among the pairs of metrics have been discussed and results are drawn in accordance with observed correlation coefficients. A study on Software evolution with the help of class cohesion and class coupling metrics has also been performed and observed trends have been analyzed.
منابع مشابه
Degree of Coupling and Cohesion in Object Oriented Programming
Many coupling and cohesion measures have been introduced in various surveys to identify and measure the design complexity of object oriented systems. A large numbers of metrics have been built and proposed for measuring properties of object-oriented software such as size, inheritance, cohesion and coupling. The coupling is an important aspect in the evaluation of reusability and maintainability...
متن کاملEmpirical Exploration for the Correlation between Class Object-Oriented Connectivity-Based Cohesion and Coupling
Attributes and methods are the basic contents of an object-oriented class. The connectivity among these class members and the relationship between the class and other classes play an important role in determining the quality of an object-oriented system. Class cohesion evaluates the degree of relatedness of class attributes and methods, whereas class coupling refers to the degree to which a cla...
متن کاملPredicting Maintainability with Object-Oriented Metrics - An Empirical Comparison
A large number of metrics have been proposed for measuring properties of object-oriented software such as size, inheritance, cohesion and coupling. We have been investigating which of these object-oriented metrics can be used as significant predictors for the maintainability of software. For this purpose, we have designed and conducted an empirical study based on historical data collected from ...
متن کاملCoupling and Cohesion Measures in Object Oriented Programming
Many coupling and cohesion measures have been introduced in various surveys to identify and measure the design complexity of object oriented systems.A large numbers of metrics have been built and proposed for measuring properties of object-oriented software such as size, inheritance, cohesion and coupling.The coupling is an important aspect in the evaluation of reusability and maintainability o...
متن کاملCoupling and Cohesion in Object-Oriented Systems
Object-oriented system development is gaining wide attention both in research environments and in industry. A severe problem encountered, however, is the quickly increasing complexity of such systems and the lack of adequate criteria and guidelines for \good" designs. To cope with this problem, it is imperative to better understand the properties and characteristics of object-oriented systems. ...
متن کامل